//Basic Input Output System
#pragma once

class User;
class Dealing;
class OrderAction;
class BIOS
{
public:
 	virtual void Init() = 0;
 	virtual void Release()  = 0;
	virtual void Login() = 0;
	virtual void SendOrderInsert(Dealing const& dealing) = 0;
	virtual void SendOrderAction(OrderAction const& action) = 0;
	virtual void SubscribeMarket(char const* contractCode) = 0;
	virtual void QueryMblMarket(char const* contractCode) = 0;
	virtual void QueryOrder(void* pQryOrder) = 0;
	virtual void QueryPosition(void* pQryPosition) = 0;

public:
	void LogOrderInsert(int rtn, Dealing const& dealing, int requestId);
	void LogOrderAction(int rtn, OrderAction const& orderAction, int requestId);
};	
